ROM is a storage medium class used in computers and other electronic devices. Data stored in ROM cannot be modified or may be modified only slowly or with difficulty, so it is often employed in the distribution of firmware. Strictly, ROM refers to memory that is hard-wired such as diode matrix and the later mask ROM. Although discrete circuits can be altered (in principle), ICs cannot and are useless if the data are bad. Despite the simplicity, speed and economies of scale of mask ROM, field-programmability often make reprogrammable memories more flexible and inexpensive.
The majority of prior art ROM programming techniques increase ROM programming time and decrease ROM yield. For example, consider the case of 8×6 bit eFuse with all bits set to 0 initially. An image consisting of 1/0 s may be programmed into the eFuse. The image to be burnt varies from die to die. An example image to be burnt into the eFuse is shown in the block diagram 100 depicted in FIG. 1. During eFuse programming, one bit at a time is programmed. Programming includes a number of steps such as, for example, addressing a bit location to be programmed to 1, one bit at a time. A long high voltage pulse can be applied at a special pin (VDDQ). For TSMC 45 nm eFuses, the pulse width is 12 us; this pulse width may increase from, for example, 10 us in 65 nm to 12 us in 45 nm. For the example shown in FIG. 1, 18 1 s have to be programmed. Programming time will be approximately 12*18 us=216 us. The larger the number of bits to be programmed, the larger the programming time. Increasing the number of programming cycles adversely affects the eFuse reliability.
Furthermore, a fault-free ROM, prior to programming, may have all bits to be 0 (or 1, depending on the technology). Next, for each bit location that needs to be set to 1, it is programmed to 1 by blowing the fuse. However, due to a defect, some bits may be set to 1 and it cannot have that bit be set to 0. For example, consider the example 16×6 bit ROM shown in diagram 150 in FIG. 2. Initially, all bits in the ROM are set to 0 and only 8 of the 16 words are utilized. Therefore, if a defect is present in any of the bits in location 9 through 16, those defects are “harmless” so far as the native mode usage of this instance of the ROM is concerned. Prior art approaches however, discard such ROM to tolerate the defects thereby reducing ROM yield.
Based on the foregoing, it is believed that a need exists for improved methods and systems for enhancing ROM yield and programming time utilizing data transformation, as described in greater detail herein.